home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Info-Mac 4
/
Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso
/
Science
/
RLaB
/
toolbox
/
chop.r
< prev
next >
Wrap
Text File
|
1994-04-25
|
652b
|
26 lines
//
// CHOP CHOP(X, t) is the matrix obtained by rounding the elements of X
// to t significant binary places.
// Default is t=23, corresponding to IEEE single precision.
//
chop = function(x, t)
{
local( c, e, m, n, p, y );
if(!exist (t)) { t = 23; }
m = size(x)[1]; n = size(x)[2];
// Use the representation:
// x[i,j] = 2^e[i,j] * .d[1]d[2]...d[s] * sign(x[i,j])
// On the next line `+(x==0)' avoids passing a zero argument to LOG, which
// would cause a warning message to be generated.
y = abs(x) + (x == 0);
e = floor(log(y)./log(2) + 1);
p = (2.*ones(m,n)).^(t-e);
c = round(p.*x)./p;
return c;
};